import Vue from 'vue'
import Vuex from 'vuex'
import createPersistedState from 'vuex-persistedstate'

Vue.use(Vuex)

//配置项
//key:指定持久化的名字 默认名字是vuex
// storage 选用一种持久化的方案 默认是本地储存
//  reducer 用于哪线属性持久化 不知道reducer 默认vuex所有的数据都会被持久化
//    reducer 是一个函数 这个函数返回一个对象 这个对象会被持久化
//     这个函数参数是state

export default new Vuex.Store({
  plugins: [
    createPersistedState({
    key:'HEIMA_TOUTIAO',
    reducer({ tokenObj , myChannels , histories }) {
      return{ tokenObj , myChannels , histories}
    }
  })],
  state: {
    tokenObj: {},
    myChannels: [],
    histories: []
  },
  getters: {
    isLogin (state) {
       return !!state.tokenObj.token
    }
  },
  mutations: { 
    SET_TOKEN(state,tokenObj) {
      state.tokenObj = tokenObj
    },
    /**
     * 更新我的频道数据
     */
    SET_MY_CHANNELS(state, channels) {
       state.myChannels = channels
    },

    SET_HISTORIES(state, histories) {
      state.histories = histories

    }
  },
  actions: {
  },
  modules: {
  }
})
